#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>

/*
使用系统调用(dup2)将其他文件描述符重定向到STDOUT_FILENO,从而改变标准输出的目标。
*/
int main()
{
    //首先使用open函数打开一个名为output.txt的文件，得到文件描述符file_descriptor
    int file_descriptor = open("output.txt",O_WRONLY | O_CREAT,0644);
    if(file_descriptor == -1)
    {
        perror("open");
        return 1;
    }
    //然后使用dup2函数将file_descriptor
    if(dup2(file_descriptor,STDOUT_FILENO) == -1)
    {
        perror("dup2");
        close(file_descriptor);
        return 1;
    }
    printf("This will be written to output.txt instead of the console.\n");
    close(file_descriptor);
    return 0;
}